home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / program / sprprcdr.lha / Wash.AMOS / Wash.amosSourceCode
AMOS Source Code  |  1996-01-26  |  2KB  |  55 lines

  1. '   *******************************************************  
  2. '   ***                                                  *** 
  3. '   ***                  Wash Procedure                  ***   
  4. '   ***                                                  *** 
  5. '   ***                        by                        *** 
  6. '   ***                                                  *** 
  7. '   ***                   Joseph Bolin                   *** 
  8. '   ***                                                  *** 
  9. '   ******************************************************** 
  10.  
  11. Dim _WASH(64)
  12. Screen Open 0,320,200,4,Lowres
  13. Flash Off 
  14. Palette $0,$800,$80,$8
  15. _WASH(0)=2 : _WASH(3)=0 : _WASH(1)=3
  16. Cls 1
  17. Ink 3 : Bar 0,0 To 63,63
  18. Ink 0 : Bar 64,64 To 128,128
  19. _WASH[32,32,200,160]
  20.  
  21. Procedure _WASH[_STARTX,_STARTY,_ENDX,_ENDY]
  22.  
  23.    '  Wash an area of the screen
  24.    '  
  25.    '  Inputs:  _STARTX,_STARTY  Coordinates of up-left    
  26.    '           _ENDX,_ENDY      Coordinates of down-right   
  27.    '           _WASH()          Wash table: _WASH(x)=Color to change color x to 
  28.    '
  29.    '  Outputs: Washs an area of the screen
  30.  
  31.    Shared _WASH()
  32.    If Screen<0 Then Error 47
  33.    For BNK=10 To 65535
  34.       If Length(B)=0 Then Exit 
  35.    Next 
  36.    Reserve As Work BNK,64
  37.    For C=0 To Screen Colour-1
  38.       Poke Start(BNK)+C,_WASH(C)
  39.    Next 
  40.    CH:
  41.    If _STARTX<0 Then _STARTX=0
  42.    If _STARTY<0 Then _STARTY=0
  43.    If _ENDX<_STARTX Then Swap _ENDX,_STARTX : Goto CH
  44.    If _ENDY<_STARTY Then Swap _ENDY,_STARTY : Goto CH
  45.    If _STARTX>=Screen Width Then _STARTX=Screen Width-1
  46.    If _ENDX>=Screen Width Then _ENDX=Screen Width-1
  47.    If _STARTY>=Screen Height Then _STARTY=Screen Height-1
  48.    If _ENDY>=Screen Height Then _ENDY=Screen Height-1
  49.    BIT=7-(_STARTX and 7)
  50.    OFF=(_STARTX+_STARTY*Screen Width)/8
  51.    WASHML[Screen Base,Start(BNK),OFF,BIT,_ENDX-_STARTX+1,_ENDY-_STARTY+1]
  52. End Proc
  53. Procedure WASHML[SCB,BNKB,OFF,BIT,WID,HE]
  54.    ' COMPILED PROCEDURE -- can't convert this to AMOS code
  55. End Proc